package serveur;

public class Navire {
	private int xA,yA,xB,yB;
	//A correspond au premier point
	//B au point extreme du navire
	private int longueur;
	private Boolean[] estTouche;
	
	Navire(int xA, int yA, int xB, int yB, int longueur){
		//if(x1 == x2 || y1 == y2){
			this.xA=xA;
			this.yA=yA;
			this.xB=xB;
			this.yB=yB;
			this.longueur = longueur;
			estTouche = new Boolean[longueur];
		//}
	}


	public int getLongueur() {
		return longueur;
	}


	public void setLongueur(int longueur) {
		this.longueur = longueur;
	}

	/**
	 * @return the xA
	 */
	public int getxA() {
		return xA;
	}


	/**
	 * @param xA the xA to set
	 */
	public void setxA(int xA) {
		this.xA = xA;
	}


	/**
	 * @return the yA
	 */
	public int getyA() {
		return yA;
	}


	/**
	 * @param yA the yA to set
	 */
	public void setyA(int yA) {
		this.yA = yA;
	}


	/**
	 * @return the xB
	 */
	public int getxB() {
		return xB;
	}


	/**
	 * @param xB the xB to set
	 */
	public void setxB(int xB) {
		this.xB = xB;
	}


	/**
	 * @return the yB
	 */
	public int getyB() {
		return yB;
	}


	/**
	 * @param yB the yB to set
	 */
	public void setyB(int yB) {
		this.yB = yB;
	}


	public Boolean[] getEstTouche() {
		return estTouche;
	}


	public void setEstTouche(Boolean[] estTouche) {
		this.estTouche = estTouche;
	}


	void setEstTouche(int x, int y){
		//on est sur que x et y sont entre x1 et x2 et y1 et y2
		
		//si le bateau est horizontal meme abscisse
		if (xA == xB){
			if(y > yA){
				estTouche[y-yA]=true;
			}else {
				estTouche[yA-y]=true;
			}
		} else {
			//si le bateau est vertical different absc => meme ordonne
			if (x > xA) {
				estTouche[x-xA]=true;
			}else {
				estTouche[xA-x]=true;
			}
		}
	}
	
	//Test si le navire a coule
	Boolean estCoule(){
		Boolean estCoule = true;
		for(Boolean b: estTouche){
			estCoule = (estCoule && b);
		}
		return estCoule;
	}
}
